//model 数据层
module.exports = class testModel extends require('./Model') {
    //查找
    static findTestList(req, res) {
        return new Promise((resolve, reject) => {
            let sql = 'select * from test'
            this.query(sql)// 调用基类的query方法往里面输入sql语句
                .then((r) => {
                    resolve(r)
                })
                .catch((e) => {
                    reject(e)
                })
        })
    }

    //增加
    static addTest(req, res) {
        return new Promise((resolve, reject) => {
            let info = req.body
            let sql = 'insert into test set ?'
            this.query(sql, info)
                .then((r) => {
                    resolve({ status: 123, message: 'success', others: r })//这里可以修改具体的成功信息
                    // res.send({status:1,message:'ok',successMessage:r})
                })
                .catch((e) => {
                    reject({ status: 222, message: 'error', others: e })//这里可以修改具体的报错信息
                    // res.send({status:0,message:'error',errorMessage:e})
                })
        })
    }

    //删除单个数据
    static deleteTest(req, res) {
        return new Promise((resolve, reject) => {
            let { id } = req.body
            let sql = 'DELETE FROM test WHERE id=?'
            this.query(sql, [id]) //单个id成为一个数组，思考如果id是多个组成数组，就可以实现批量删除
                .then((r) => {
                    resolve({ message: "id 为 " + id + ' 删除成功！' })
                })
                .catch((e) => {
                    reject({ message: "id 为 " + id + " 删除失败", reason: e })
                })
        })
    }

    //删除多个数据 可以自行思考怎么实现 选中的id 可以是多个，组成数组

    //修改
    //注意mysql配置是默认不识别大小写的，可以对mysql字段中的排序规则设置为 utf8mb4_bin 这样mysql中你要修改的字段就可以实现区分大小
    static changeTest(req, res) {
        return new Promise((resolve, reject) => {
            // 前端传参可以通过body传name和newName来进行修改
            let { name, newName } = req.body
            //sql 语句为 当name是xx的时候，把name修改为xxx
            let sql = 'update test set name=? where name=?'
            this.query(sql, [newName, name])
                .then((r) => {
                    resolve({ message: "name 为 " + name + " 成功修改为" + newName })
                })
                .catch((e) => {
                    reject({ message:"name 为 " + name + " 修改成 "+ newName+" 失败",reason:e })
                })
        })

    }

}